#include <iostream>
#include <string>
#include <time.h>
#include "structures.h"
#include "RehercheSequentiel.h"
#include "RechPO.h"
#include "cmp.h"

void cmp(dico2* Racine, char* chaine)
{char *seq;int seqT,oc,nb=0;dico2 *Noeud;
clock_t temps_initial,	temps_final; 
	
	float temps_cpu,temps_cpu2; 
	system("clear");
	printf("\n\nRecherche d'une sequence :\n\n");
	printf("\nveuillez entrer la taille de la sequence a rechercher pour optimiser l'espace memoire ou entrez directement la chaine ( 0 pour quitter ): \n");
	scanf("%d",&seqT);
	
	while(seqT!=0)
	{
		Noeud=Racine;
		if(seqT<1)
		{
			seqT=strlen(chaine);
		}	
		else
		{
			printf("\nVeuillez entrer la sequence : \n");
		}	
		seq=(char*)malloc((seqT+1)*sizeof(char));
		seqT=-1;
		scanf("%s",seq);
		temps_initial = clock ();
		oc=Rech27(Noeud,seq,chaine,&nb);
		temps_final = clock ();
		temps_cpu = (temps_final - temps_initial);
		temps_initial = clock ();
		//rech09(chaine,seq);
		temps_final = clock ();
		temps_cpu2 = (temps_final - temps_initial);
		printf("\n\nLa recherche dans l'arbre s'est faites en %f secondes\nLa recherche sequentielle s'est faites en %f secondes\nLa différence de vitesse a ete de %f secondes",(temps_cpu)/CLOCKS_PER_SEC,(temps_cpu2)/CLOCKS_PER_SEC,((temps_cpu2)-(temps_cpu))/CLOCKS_PER_SEC);
		printf("\n\nLa recherche dans l'arbre a donc était %.1f fois plus vite\n",(temps_cpu2)/(temps_cpu));
		if(oc)
		{
			printf("\n\nLa chaine est presente a la position %d, %d fois",oc,nb);
		}
		else
			printf("\n\nLa chaine n'est pas presente...");
		free(seq);
		printf("\nveuillez entrer la taille de la sequence a rechercher pour optimiser l'espace memoire ou entrez directement la chaine ( 0 pour quitter ): \n");
		scanf("%d",&seqT);
	}
}
